/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.unam.fciencias.ActividadesCulturales.services;

import java.util.List;
import mx.unam.fciencias.ActividadesCulturales.services.DAO.EntidadAcademicaDAO;
import mx.unam.fciencias.actividadesculturales.entidades.db.EntidadAcademica;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * Capa de Negocio para comunicarse con la capa de datos de la entidad academica.
 * @author lumartin
 */
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public class ServicioEntidadAcademica {

    /** Acceso a datos de entidad academica. */
    private EntidadAcademicaDAO entidadAcademicaDAO;

    /**
     * Obtiene a entidadAcademicaDAO.
     * @return entidadAcademicaDAO.
     */
    public EntidadAcademicaDAO getEntidadAcademicaDAO() {
        return entidadAcademicaDAO;
    }

    /**
     * Asigna un entidadAcademicaDAO.
     * @param entidadAcademicaDAO.
     */
    public void setEntidadAcademicaDAO(EntidadAcademicaDAO entidadAcademicaDAO) {
        this.entidadAcademicaDAO = entidadAcademicaDAO;
    }

    /**
     * Obtiene una entidad academica a partir de su identificador.
     * @param id_ent_acad el identificador de la entidad academica.
     * @return la entidad academica.
     */
    public EntidadAcademica getById(Long id_ent_acad) {
        return entidadAcademicaDAO.getById(id_ent_acad);
    }

    /**
     * Obtiene todas las entidades academicas de la base de datos.
     * @return lista con las entidades academicas.
     */
    public List<EntidadAcademica> getTodas() {
        return entidadAcademicaDAO.getTodas();
    }

    /**
     * Guarda o actualiza una entidad academica.
     * @param entidadAcademica a guardar.
     * @return true si guardo correctamente false si no.
     */
    public boolean guarda(EntidadAcademica entidadAcademica) {
        return entidadAcademicaDAO.guardar(entidadAcademica);
    }
}
